// 和为k的子数组

//  求和转换成求差
let nums = [1,1,1], k = 2

var subarraySum = function(nums, k) {
    // 把每一项累加的值减去k得到的差都去map里面找一下有没有，有的话，就说明有一种情况是满足的
    let sum_i = 0, sum_j = 0, map = new Map()
    map.set(0, 1)

    for(let i = 0; i < nums.length; i++) {
        sum_i += nums[i]
        sum_j = sum_i - k

        if(map.has(sum_j)) {
            count += map.get(sum_j)
        }
        let sum_cnt = map.get(sum_i) || 0
        map.set(sum_i, sum_cnt + 1)
    }
    return count
}